﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using CqusInfo.RAL.User;

namespace CqusInfo.BLL.User.Inteface
{
    public interface IUser_BlackBLL
    {
        /// <summary>
        /// 得到表的总条数
        /// </summary>
        /// <param name="isDel">true：已删除 false：未删除</param>
        /// <returns></returns>
        Int32 GetCounts(bool isDel);

        /// <summary>
        /// 依据用户名或者管理员查找信息
        /// </summary>
        /// <param name="admin">管理员Id</param>
        /// <param name="userName">用户名</param>
        /// <param name="page">页数，第几页 需要减一</param>
        /// <param name="takeItem">每页显示的数目</param>
        /// <returns>List<User_BlackModel></returns>
        List<User_BlackModel> Query(string admin, string userName, Int32 page, Int32 takeItem);

        /// <summary>
        /// 查找表中所有信息（可自动选择是否拉黑，是否删除）
        /// </summary>
        /// <param name="page">页数，第几页 需要减一</param>
        /// <param name="takeItem">每页显示的数目</param>
        /// <param name="isBlack">true：已拉黑 false：未拉黑</param>
        /// <param name="isDel">true：已删除 false：未删除</param>
        /// <returns>List<User_BlackModel></returns>
        List<User_BlackModel> Query(Int32 page, Int32 takeItem, bool isBlack, bool isDel);

        /// <summary>
        /// 查找用户的警告次数
        /// </summary>
        /// <param name="userName">用户名</param>
        /// <returns>警告次数</returns>
        Int32 Query(string userName);

        /// <summary>
        /// 添加数据 用户注册时用
        /// </summary>
        /// <param name="model">数据集</param>
        /// <returns>1：成功 0：失败</returns>
        Int32 Add(User_BlackModel model);

        /// <summary>
        /// 删除用户（包括 伪删除，和彻底删除）
        /// </summary>
        /// <param name="ubId">用户名</param>
        /// <param name="isDel">true：已删除 false：未删除</param>
        /// <param name="trueDel">true：彻底删除  false：调用伪删除</param>
        /// <returns>1：成功 0：失败</returns>
        Int32 Delete(string ubId, bool isDel, bool trueDel);

        /// <summary>
        /// 警告用户，每调用一次就增加一次警告
        /// </summary>
        /// <param name="userName">用户名</param>
        /// <returns>1：成功 0：失败</returns>
        bool Update(string userName);

        /// <summary>
        /// 拉黑用户或者消去拉黑记录
        /// </summary>
        /// <param name="userName">用户名</param>
        /// <param name="isBlack">true：拉黑 false：取消拉黑</param>
        /// <returns>true：成功 false：失败</returns>
        bool Update(string userName, bool isBlack);
    }
}
